﻿namespace Pe.Petecos.Comercial.Cross.Document.Excel
{
    /// <summary>
    /// Objeto que define un tipo de estilo a ser usado por una o mas celdas
    /// </summary>
    /// <remarks>
    /// Creacion: 	GMD 20140514 <br />
    /// </remarks>
    public class Style
    {
        /// <summary>
        /// Constructor por Defecto de implementación de la clase.
        /// </summary>
        public Style()
        {
            this.BackGroundColor = "ffffff";
            this.Color = "000000";
            this.Border = false;
            this.FontBold = false;
            this.FontSize = 11;
        }
        /// <summary>
        /// Identificador del estilo
        /// </summary>
        public string Id { get; set; }
        /// <summary>
        /// Nombre de la fuente
        /// </summary>
        public string FontName { get; set; }
        /// <summary>
        /// Tamaño de la fuente
        /// </summary>
        public int FontSize { get; set; }
        /// <summary>
        /// Indicador Negrita
        /// </summary>
        public bool FontBold { get; set; }
        /// <summary>
        /// Color de la fuente
        /// </summary>
        public string Color { get; set; }
        /// <summary>
        /// Color de fondo
        /// </summary>
        public string BackGroundColor { get; set; }
        /// <summary>
        /// Indicador de borde
        /// </summary>
        public bool Border { get; set; }
        /// <summary>
        /// Inidice del estilo
        /// </summary>
        public int StyleIndex { get; set; }
        /// <summary>
        /// Identificador de la fuente
        /// </summary>
        public uint FontId { get; set; }
        /// <summary>
        /// Indicador del
        /// </summary>
        public uint FillId { get; set; }
        /// <summary>
        /// Ajustar texto
        /// </summary>
        public bool WrapText { get; set; }
        /// <summary>
        /// Identificador del formato
        /// </summary>
        public uint? NumericFormat { get; set; }
        /// <summary>
        /// Alineación horizontal
        /// </summary>
        public HorizontalAlignmentOptions HorizontalAlignment { get; set; }
        /// <summary>
        /// Alineación vertical
        /// </summary>
        public VerticalAlignmentOptions VerticalAlignmentAlignment { get; set; }
        /// <summary>
        /// Tipo de alineación horizontal
        /// </summary>
        public enum HorizontalAlignmentOptions : int
        {
            Left = 1,
            Center = 2,
            Right = 3
        }
        /// <summary>
        /// Tipo de alineación vertical
        /// </summary>
        public enum VerticalAlignmentOptions : int
        {
            Top = 0,            
            Center = 1,
            Bottom = 2,
            Justify = 3,
            Distributed = 4
        }
    }
}
